package com.ndp.fb.enums;

import lombok.Getter;

/**
 * 状态枚举类，产品、产品配置、营销方案等都会使用
 * 
 * @author ricky
 * @since 2013-12-30
 */
@Getter
public enum Status {

    /**
     * ACTIVE
     */
    ACTIVE("ACTIVE", 1),
    
    /**
     * PAUSED
     */
    PAUSED("PAUSED", 2),
    
    /**
     * DELETED
     */
    DELETED("DELETED", 3);

    /**
     * 从i18n国际化文件中取值的code
     */
    private String messageCode;
    
    /**
     * 防止枚举序列值与Facebook的不能对应而指定index
     */
    private int index;

    /**
     * 私有构造方法
     * 
     * @param messageCode messageCode
     * @param index index
     */
    Status(String messageCode, int index) {
        this.messageCode = messageCode;
        this.index = index;
    }
    
    /**
     * 根据index获取Status
     * @param index index
     * @return Status
     */
    public static Status getStatus(int index) {
        for (Status c : Status.values()) {
            if (c.index == index) {
                return c;
            }
        }
        
        return null;
    }
    
    /**
     * 根据messageCode获取Status
     * @param messageCode messageCode
     * @return Status
     */
    public static Status getStatus(String messageCode) {
        for (Status c : Status.values()) {
            if (c.messageCode.equals(messageCode)) {
                return c;
            }
        }
        
        return null;
    }
    
    
    
    // @Override
    // public String toString() {
    // return super.toString().toLowerCase(Locale.getDefault());
    // }

    
}
